Alfred の Google Suggest を日本語モードにする
Alfred の Google Suggest
言わずと知れた Mac の ランチャーアプリ Alfred 。
(公式では "Alfred is a keyboard-driven productivity application," と書かれている)
このアプリの Powerpack を購入することで利用できる Workflows の中には Google Suggest の Example が存在します。
しかしこの Google Suggest はデフォルト設定でアメリカ用になっているため、検索ワードを入力しても日本の Google ホームページでの入力時と同じ入力候補が返ってきません。
というわけで、この Google Suggest の設定を日本用にカスタマイズします。
実行画面
Before
After
設定
以下のコードを Script: に記述します。
require_once('workflows.php'); $wf = new Workflows(); $orig = "{query}"; $xml = $wf->request( "http://www.google.co.jp/complete/search?hl=ja&ie=utf_8&oe=utf_8&output=toolbar&q=".urlencode( $orig ) ); $xml = simplexml_load_string( $xml ); $int = 1; foreach( $xml as $sugg ): $data = $sugg->suggestion->attributes()->data; $wf->result( $int.'.'.time(), "$data", "$data", 'Search Google for '.$data, 'icon.png' ); $int++; endforeach; $results = $wf->results(); if ( count( $results ) == 0 ): $wf->result( 'googlesuggest', $orig, 'No Suggestions', 'No search suggestions found. Search Google for '.$orig, 'icon.png' ); endif; echo $wf->toxml();
おわり
解説
デフォルトのコードから変更した部分は、5 行目と 6 行目だけです。
Before
$xml = $wf->request( "http://google.com/complete/search?output=toolbar&q=".urlencode( $orig ) ); $xml = simplexml_load_string( utf8_encode($xml) );
After
$xml = $wf->request( "http://www.google.co.jp/complete/search?hl=ja&ie=utf_8&oe=utf_8&output=toolbar&q=".urlencode( $orig ) ); $xml = simplexml_load_string( $xml );
1. ドメインを変更
google.com → www.google.co.jp
2. Google Suggest API にパラメータを追加
- hl : 言語
- ie : Input Encoding
- oe : Output Encoding
hl には「日本語」を、ie, oe には共に「utf8」を指定しています。
3. 取得した xml に対して utf8_encode() を実行しない
simplexml_load_string( utf8_encode($xml) ); → simplexml_load_string( $xml );
そもそもなぜ API のレスポンスに対してエンコードを実行しているのかが私にはわかりません。
utf8_encode() を実行したままにすると文字化けします。
以上
快適な Alfred ライフをお楽しみください。